home *** CD-ROM | disk | FTP | other *** search
- Here is a typical continuously dumping stack packet:
-
- [B ] S: 220 D: 255
- 02 58 44 73 74 61 63 6B 20 64 75 6D 70 00 00 06 XDstack dump
- 3A 00 06 FA 70 20 00 00 00 16 10 00 06 FA 46 20 : p F
- 00 00 06 40 2A 00 06 FA 28 00 06 FD C2 00 06 FD @* (
- CC 00 06 F8 00 00 06 DA BE 00 00 00 01 DC 00 00
- 00 00 7F 00 00 00 00 33 0D 00 00 01 00 00 00 80 3
- 02 38 00 32 38 40 00 00 00 01 00 80 02 0D 0D 32 8 28@ 2
- 01 28 01 01 00 01 00 80 02 FE B9 32 FE 28 01 02 ( 2 (
- 00 01 00 80 02 DE E0 32 DE 28 01 02 00 01 00 80 2 (
- 02 F2 0A 32 F2 28 01 02 00 01 00 80 02 F1 7C 32 2 ( |2
- F1 28 01 03 00 01 00 80 02 F8 93 32 F8 28 01 03 ( 2 (
- 00 01 00 80 02 EC 81 32 EC 28 01 04 00 01 00 80 2 (
- 02 E7 03 32 E7 28 01 03 00 01 00 80 02 13 2B 32 2 ( +2
- 13 28 01 03 00 01 00 80 02 0D 28 32 0D 28 01 01 ( (2 (
- 00 01 00 80 02 23 4D 32 23 28 01 01 00 01 00 80 #M2#(
- 02 44 01 32 C8 89 01 05 00 01 00 80 02 38 0A 33 D 2 8 3
- 01 98 01 01 00 01 00 80 02 DF 01 33 05 98 01 06 3
- 00 01 00 08 00 89 D0 14 63 00 00 00 00 00 00 00 c
- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-
-
- Here are the details:
-
- 02 58 | 44 | 73 74 61 63 6B 20 64 75 6D 70 | 00 00 06
- <- 01 -> <02> <---------------------------- 03 ---------------> <---- 04 ----
-
- 3A | 00 06 FA 70 | 20 00 | 00 00 16 10 | 00 06 FA 46 | 20
- --> <------ 05 -------> <- 06 --> <------- 07 ------> <------- 08 ------> <09
-
- 00 | 00 06 40 2A | 00 06 FA 28 | 00 06 FD C2 | 00 06 FD
- --> <------ 10 -------> <------- 11 ------> <------ 12 -------> <----- 13 ---
-
- 01 - data count (plus DDP hop count if this was a long DDP).
- 02 - type of Kinetics lap packet: 0x44 = 'D' is the diagnostic type.
- 03 - ASCII "stack dump" for stack packet.
-
- ****
- All addresses that refer to PROM locations or RAM locations
- used by the PROM are dependent on the revision level of the PROM.
- The following addresses are based on the PROM known by the
- version 3.0 and the checksum 6EEC.
- ****
- 04 - 0x63A is first true stack address: from the PROM, this is
- the return address after the call to the stack packet routine.
- The call is from the routine "nultrap" which is the default
- exception handler used for every type of exception/interrupt
- except specifically the AppleTalk/8530 and the Ethernet chip
- and whatever else might be specifically replaced.
- 05 - From the PROM, 0x6FA70 is a return address in the exception vectors
- after the "jsr nultrap" which is also used to indicate which
- exception/interrupt occurred.
- Here is the magic formula:
- The vectors start at 0x6FA28.
- Each vector is 6 bytes, the length of the "jsr nultrap".
- 0x6FA70 - 0x6FA28 = 0x48 = 72
- (72. - 6) / 6 = 11.
- Exception vector 11. is the ***********
- I have included a table at the end of this mail which tells all
- in terms of which vectors are used for what.
- ***
- At this point, the remainder of the stack is interpreted
- according to type of exception that occurs. Consult the
- Motorola 68000 manual for details.
- ***
- 06 - 0x2000 is the processor status at the time of the Ethernet interrupt.
- 07 - 0x1610 is the interrupted instruction location in the PROM.
- Apparently, this exception happened in the middle of a previous exception:
- 08 - 0x6FA46 is the return address for the exception "illegal instruction".
- 09 - 0x2000 is the processor priority at the time of this exception.
- 10 - 0x6402A is the return address from the initial call to "main".
- 11 - 0x6FA28 is the first piece of data in the data segment (directly above
- the stack).
-
- Exception Table for PROM 6EEC
- =====================================
-
- 6FA3A | 2: Bus error (long format stack dump)
- 6FA40 | 3: Address error (long format stack dump)
- 6FA46 | 4: Illegal instruction
- 6FA4C | 5: Zero divide
- 6FA52 | 6: CHK instruction
- 6FA58 | 7: TRAPV instruction
- 6FA5E | 8: Privilege violation
- 6FA64 | 9: Trace
- 6FA6A | 10: Line 1010 emulator
- 6FA70 | 11: Line 1111 emulator
- 6FA76 | 12: Unused
- 6FA7C | 13: Unused
- 6FA82 | 14: Unused
- 6FA88 | 15: Unused
- 6FA8E | 16: Level 2 dispatcher
- 6FA94 | 17: Unused
- 6FA9A | 18: Unused
- 6FAA0 | 19: Unused
- 6FAA6 | 20: Unused
- 6FAAC | 21: Unused
- 6FAB2 | 22: Unused
- 6FAB8 | 23: Unused
- 6FABE | 24: Spurious Interrupt
- 6FAC4 | 25: Level 1 Interrupt Autovector
- 6FACA | 26: Level 2 Interrupt Autovector
- 6FAD0 | 27: Level 3 Interrupt Autovector
- 6FAD6 | 28: Level 4 Interrupt Autovector
- 6FADC | 29: Level 5 Interrupt Autovector
- 6FAE2 | 30: Level 6 Interrupt Autovector
- 6FAE8 | 31: Level 7 Interrupt Autovector
- 6FAEE | 32: TRAP 00 Instruction Vectors
- 6FAF4 | 33: TRAP 01 Instruction Vectors
- 6FAFA | 34: TRAP 02 Instruction Vectors
- 6FB00 | 35: TRAP 03 Instruction Vectors
- 6FB06 | 36: TRAP 04 Instruction Vectors
- 6FB0C | 37: TRAP 05 Instruction Vectors
- 6FB12 | 38: TRAP 06 Instruction Vectors
- 6FB18 | 39: TRAP 07 Instruction Vectors
- 6FB1E | 40: TRAP 08 Instruction Vectors
- 6FB24 | 41: TRAP 09 Instruction Vectors
- 6FB2A | 42: TRAP 10 Instruction Vectors
- 6FB30 | 43: TRAP 11 Instruction Vectors
- 6FB36 | 44: TRAP 12 Instruction Vectors
- 6FB3C | 45: TRAP 13 Instruction Vectors
- 6FB42 | 46: TRAP 14 Instruction Vectors
- 6FB48 | 47: TRAP 15 Instruction Vectors
- 6FB4E | 48: Ethernet service
- 6FB54 | 49: Deadman timer service
- 6FB5A | 50: Timeout service
- 6FB60 | 51: Applebus service
- 6FB66 | 52: Q-bus host service
- 6FB6C | 53: Multibus host service
- 6FB72 | 54: Unused
- 6FB78 | 55: Unused
- 6FB7E | 56: Unused
- 6FB84 | 57: Unused
- 6FB8A | 58: Unused
- 6FB90 | 59: Unused
- 6FB96 | 60: Unused
- 6FB9C | 61: Unused
- 6FBA2 | 62: Unused
- 6FBA8 | 63: Unused
-
-
- Short Format Stack Dump:
- 15 0
- Status Register
- Program Counter High
- Program Counter Low
-
- Long Format Stack Dump:
- 15 0
- Information word
- Access address high
- Access address low
- Instruction Register
- Status Register
- Program Counter High
- Program Counter Low
-
- Of the information word:
- bit 3 is 1 if the access was made by an instruction fetch,
- bit 4 is 1 if the access was made by a read.
-
-